home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2009 February / PCWFEB09.iso / Software / Linux / Kubuntu 8.10 / kubuntu-8.10-desktop-i386.iso / casper / filesystem.squashfs / etc / init.d / pcmciautils < prev    next >
Text File  |  2007-10-23  |  2KB  |  136 lines

  1. #! /bin/sh
  2. #
  3. ### BEGIN INIT INFO
  4. # Provides:          pcmcia
  5. # Required-Start:    udev
  6. # Required-Stop:
  7. # Default-Start:     S
  8. # Default-Stop:
  9. # Short-Description: PCMCIA support
  10. # Description:       This service provides PCMCIA hardware support for
  11. #                    systems running Linux >= 2.6.13-rc1.
  12. ### END INIT INFO
  13.  
  14. set -e
  15.  
  16. [ -f /sbin/pccardctl ] || exit 0
  17.  
  18. # If /lib/lsb/init-functions doesn't exist
  19. # define them here, otherwise installer breaks
  20. if [ -f /lib/lsb/init-functions ]; then
  21.     . /lib/lsb/init-functions
  22. else
  23.     log_daemon_msg()
  24.     {
  25.     echo "$1: $2"
  26.     }
  27.     log_end_msg()
  28.     {
  29.     if [ "$1" = 0 ]; then
  30.         echo "done"
  31.     else
  32.         echo "failed!"
  33.     fi
  34.     return $1
  35.     }
  36.     log_success_msg()
  37.     {
  38.     echo "$@"
  39.     }
  40.     log_failure_msg()
  41.     {
  42.     echo "$@"
  43.     }
  44. fi
  45.  
  46. [ -f /etc/default/pcmciautils ] && . /etc/default/pcmciautils
  47.  
  48. case $PCMCIA in
  49.     no|false)
  50.     exit 0
  51.     ;;
  52. esac
  53.  
  54. [ -f /etc/default/rcS ] && . /etc/default/rcS
  55.  
  56. # Are we running from init?
  57. run_by_init()
  58. {
  59.     ([ "$previous" ] && [ "$runlevel" ]) || [ "$runlevel" = S ]
  60. }
  61.  
  62. if ls /sys/class/pcmcia_socket/* >/dev/null 2>&1; then
  63.     if ! run_by_init; then
  64.     log_success_msg "PCMCIA bridge driver already present in kernel"
  65.     fi
  66.     exit 0
  67. fi
  68.  
  69. KERNEL_VERSION="$(uname -r | sed 's/-.*//')"
  70.  
  71. supported_kernel()
  72. {
  73.     case $KERNEL_VERSION in
  74.     2.[012345].*|2.6.[0-9]|2.6.[0-9][!0-9]*) return 1 ;;
  75.     2.6.1[012]|2.6.1[012][!0-9]*) return 1 ;;
  76.     esac
  77.     return 0
  78. }
  79.  
  80. if ! supported_kernel; then
  81.     if ! run_by_init; then
  82.     log_failure_msg "pcmciautils requires Linux >= 2.6.13-rc1; use pcmcia-cs instead"
  83.     fi
  84.     exit 1
  85. fi
  86.  
  87. if [ -z "$PCIC" ]; then
  88.     if ! run_by_init; then
  89.     log_failure_msg "No PCMCIA bridge module specified"
  90.     fi
  91.     exit 1
  92. fi
  93.  
  94. if ! [ -e /dev/.udev ]; then
  95.     if ! run_by_init; then
  96.     log_failure_msg "pcmciautils requires udev to be enabled"
  97.     fi
  98.     exit 1
  99. fi
  100.  
  101. if [ "$VERBOSE" = "no" ]; then
  102.     MODPROBE_OPTIONS="$MODPROBE_OPTIONS -Q"
  103.     export MODPROBE_OPTIONS
  104. fi
  105.  
  106. case "$1" in
  107.     start)
  108.     log_daemon_msg "Loading PCMCIA bridge driver module" "$PCIC"
  109.  
  110.     if [ "$CORE_OPTS" ]; then
  111.         modprobe -Qb pcmcia_core $CORE_OPTS
  112.     fi
  113.     
  114.     modprobe -Qb $PCIC $PCIC_OPTS
  115.     
  116.     log_end_msg $?
  117.     ;;
  118.  
  119.     stop)
  120.     ;;
  121.     
  122.     restart)
  123.     $0 stop
  124.     $0 start
  125.     exit $?
  126.     ;;
  127.  
  128.     reload|force-reload)
  129.     ;;
  130.  
  131.     *)
  132.     log_success_msg "Usage: $0 {start|stop|restart|reload|force-reload}"
  133.     exit 2
  134.     ;;
  135. esac
  136.